Handing over a user device from one technology to another

ABSTRACT

A server device may identify that a user device is connected to a first radio access network (“RAN”), via a first technology. The server device may identify that the user device is capable of accessing a second RAN, via a second technology, where the second RAN is different from the first RAN, and where the second technology is different from the first technology. The server device may also receive an indication that the first RAN is congested. The server device may further determine, based on the indication that first RAN is congested, and further based on identifying that the user device is capable of accessing the second RAN via the second technology, that the user device should be handed over to the second RAN. Additionally, the server device may instruct the user device to connect to the second RAN via the second technology.

BACKGROUND

Wireless service providers (such as cellular service providers) mayprovide many different wireless technologies at any given time. In orderto provide these technologies, wireless service providers may provideone or more radio access networks (“RANs”) to which wireless devices,such as telephones, may wirelessly connect. Different RANs maycorrespond to different wireless technologies, and/or one RAN maycorrespond to multiple different wireless technologies. Thus, at anygiven time, multiple different wireless technologies may be available,through which a user device may connect to a network via a RAN.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-C illustrate an overview of an example implementation describedherein;

FIG. 2 is a diagram of an example network in which systems and/ormethods, described herein, may be implemented;

FIG. 3 is a diagram of example components of one or more devices shownin FIG. 2;

FIG. 4 is a diagram of example components of a RAN Handover Server(“RHS”) shown in FIGS. 1A-C;

FIG. 5 is a diagram of an example process for handing over a connectionbased on received information regarding a user device, a network,network congestion, and/or an invoked application;

FIG. 6 is a diagram of an example process for handing over a connectionbased on network congestion;

FIG. 7 is a diagram of an example process for handing over a connectionbased on identifying a technology via which a user device is presentlyconnected to a RAN; and

FIG. 8 is a diagram of an example process for handing over a connectionbased on an invoked application.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

A system and/or method, described herein, may enable a user device(e.g., a cellular telephone, a personal digital assistant (“PDA”), atablet computer, a laptop computer, etc.) to use various differenttechnologies associated with radio access networks (“RANs”), which mayinclude evolved NodeB, Base Transceiver Stations, WiFi access points,and/or other devices, based on several factors. These factors mayinclude one or more factors that are based on network conditions (e.g.,radio congestion, gateway congestion, etc.), applications invoked by theuser device (e.g., a voice over Internet Protocol (“VoIP”) application,a data application, a voice call, etc.), device capabilities (e.g.,which technology, or technologies, the user device is capable of using),subscriber information associated with the user device, etc.

FIGS. 1A-C illustrate an example implementation described herein. Asshown in FIGS. 1A-C, system 100 may include a user device 102, RANs105-1 through 105-N (hereinafter referred to individually as “RAN 105,”and collectively as “RANs 105”), network 110, and RAN handover server(“RHS”) 115.

User device 102 may include any type of user device, such as a cellulartelephone, a PDA, a tablet computer, a laptop computer, or the like.User device 102 may include multiple radio transceivers, that are eachcapable of communicating over one or more wireless access technologies.For instance, user device 102 may be capable of communicating via two ormore of Long Term Evolution (“LTE”), CDMA2000 1X (“1X”), CDMA2000Evolution-Data Optimized (“EV-DO”), IEEE 802.11x (“wi-fi”), or othertypes of technologies.

RANs 105 may include one or more devices that may enable a user device(e.g., user device 102) to wirelessly connect to one or more networks(e.g., to network 110), via RANs 105. For example, each of RANs 105 mayinclude one or more wireless transceivers, which communicate with (e.g.,transmit data to and/or from) user device 102. Each of RANs 105 may alsocommunicate with (e.g., transmit data to and/or from) network 110.Furthermore, each of RANs 105 may communicate with RHS 115 (e.g. throughnetwork 110, and/or through another connection (not pictured)).

Network 110 may include one or more devices that transmit/receive voiceand/or data to a circuit-switched, packet-switched network, and/or IPbased network (e.g. LTE, IMS etc). In one embodiment, network 110 mayinclude, for example, a Mobility Management Entity (MME), a ServingGateway (SGW), a Packet Data Network Gateway (PDN-GW or PGW), a CallSession Control Function (CSCF), a Policy Charging and Rules Function(PCRF), a Media Resource Function (MRF), an Home Subscriber Server(HSS), a Mobile Switching Center (“MSC”), a Gateway MSC (“GMSC”), aMedia Gateway (“MGW”), a Serving General Packet Radio Service (“GPRS”)Support Node (“SGSN”), a Gateway GPRS Support Node (“GGSN”), and/orother devices. Network 110 may be a private network, and/or a publicnetwork, such as the Internet.

RHS 115 may include one or more devices that analyze informationregarding user devices (e.g., user device 102) and/or network conditionsin RANs 105. RHS 115 may be directly connected to one or more devices inany of RANs 105, may be included in one or more devices in any of RANs105, and/or may be connected to any of RANs 105 through network 110. RHS115 may use the analyzed information to instruct user device 102 and/orone or more RANs 105 to hand over a connection between user device 102and one RAN 105 to another RAN 105. Examples of the types ofinformation, that RHS 115 may receive, store, and/or analyze, areprovided in further detail below.

As shown in FIG. 1A, assume that user device 102 is connected to network110 via RAN 105-1. In other words, user device 102 may connect to RAN105-1, in order to communicate with network 110. RHS 115 may determine,based on one or more factors, that user device 102 should connect to RAN105-2 instead of RAN 105-1. Upon making this determination, RHS 115 maysend an instruction or instructions (e.g., to user device 102, to RAN105-1, and/or to RAN 105-2) that indicates that user device 102 shouldconnect to RAN 105-2 instead of RAN 105-1.

As shown in FIG. 1B, user device 102 may now be connected to RAN 105-2,in response to the instruction(s) sent by RHS 115. As further shown inFIG. 1B, user device 102 may no longer be connected to RAN 105-1, onceuser device 102 connects to RAN 105-2.

As shown in FIG. 1C, user device 102 may simultaneously be connected to(e.g., simultaneously communicate with) multiple RANs, such as RANs105-1 and 105-2. For example, RHS 115 may send an instruction thatcauses user device 102 to connect to both RANs 105-1 and 105-2. Userdevice 102 may send/receive one type of traffic via RAN 105-1 (e.g.,voice traffic), while sending/receiving a different type of traffic(e.g., data traffic) via RAN 105-2.

Thus, user device 102 may connect to various RANs 105 according tovarious factors, such as network congestion, capabilities of user device102, subscriptions associated with user device 102, preferences of anetwork administrator, etc.

FIG. 2 depicts a diagram of an example network 200 in which systemsand/or methods described herein may be implemented. As shown, network200 may include a group of user devices 102-1 through 102-L (where L isan integer that is greater than or equal to 1) (referred to collectivelyas “user devices 102,” and in some instances individually, as “userdevice 102”), RAN 105, network 110, and RHS 115. Four user devices 102,a single RAN 105, and a single network 110 have been illustrated in FIG.2 for simplicity. In practice, additional user devices 102, RANs 105,and/or networks 110 may be used. Also, in some instances, a component innetwork 200 (e.g., one or more of user device 102, RAN 105, and network110) may perform one or more functions described as being performed byanother component or group of components in network 200.

User device 102 may include one or more devices capable ofsending/receiving voice and/or data to/from RAN 105. User device 102 mayinclude, for example, a radiotelephone, a personal communications system(“PCS”) terminal (e.g., a terminal that may combine a cellularradiotelephone with data processing and data communicationscapabilities), a PDA (e.g., a device that may include a radiotelephone,a pager, Internet/intranet access, etc.), a laptop computer, a tabletcomputer, etc.

RAN 105 may include one or more devices for transmitting voice and/ordata to user device 102 and network 110. As illustrated in FIG. 2, RAN105 may include a group of base stations 222-1 through 222-M (where M isan integer that is greater than or equal to 1) (referred to collectivelyas “base stations 222” and in some instances, individually as “basestation 222”), and a group of radio network controllers (“RNCs”) 224-1through 224-N (where N is an integer that is greater than or equal to 1)(referred to collectively as “radio network controllers 224” and in someinstances, individually as “radio network controller 224”). Four basestations 222 and two RNCs 224 are shown in FIG. 2 for simplicity. Inpractice, there may be additional or fewer base stations 222 and/or RNCs224. Also, in some instances, a component in RAN 105 (e.g., one or moreof base stations 222 and RNCs 224) may perform one or more functionsdescribed as being performed by another component or group of componentsin RAN 105.

RAN 105 may correspond to one or more particular technologies. Forexample, RAN 105 may correspond to an LTE technology. In such anexample, base stations 222 may take the form of evolved node Bs(“eNBs”), and RNCs 224 may take the form of mobile management entities(“MMEs”) and Serving Gateways (SGWs).

Base stations 222 may include one or more network devices that receivevoice and/or data from RNCs 224 and transmit the voice and/or datato/from user devices 102 via an air interface (e.g., via one or morewireless transceivers associated with base stations 222). Base stations222 may also include one or more network devices that receive voiceand/or data from user devices 102 over an air interface and transmitthat voice and/or data to RNCs 224 or other user devices 102.

RNCs 224 may include one or more devices that control and manage basestations 222. Radio network controllers 224 may also include devicesthat perform data processing to manage utilization of radio networkservices. RNCs 224 may transmit/receive voice and data to/from basestations 222, other radio network controllers 224, and/or network 110.

RNC 224 may act as a controlling radio network controller (“CRNC”), adrift radio network controller (“DRNC”), and/or a serving radio networkcontroller (“SRNC”). A CRNC may be responsible for controlling theresources of a base station 222. A SRNC may serve particular user device102 and may manage connections towards that user device 102. A DRNC mayfulfill a similar role to the SRNC (e.g., may route traffic between aSRNC and user device 102).

Network 110 may include one or more devices that transmit/receive voiceand/or data to a circuit-switched and/or packet-switched network. In oneembodiment, network 110 may include, for example, a CSCF, a PCRF, a MRF,an HSS, a MSC, a GMSC, a MGW, a SGSN, a GGSN, and/or other devices.

As described above, RHS 115 may include one or more devices that analyzeinformation regarding user devices (e.g., user device 102) and/ornetwork conditions in RANs 105. RHS 115 may use the analyzed informationto cause the handover of a connection between user device 102 and oneRAN 105 to another RAN 105.

FIG. 3 is a diagram of example components of device 300. Each of thedevices illustrated in FIG. 1 or 2 may include one or more devices 300.Device 300 may include bus 310, processor 320, memory 330, inputcomponent 340, output component 350, and communication interface 360. Inanother implementation, device 300 may include additional, fewer,different, or differently arranged components. Some non-limitingexamples of device 300, with additional and/or different components, arediscussed below.

Bus 310 may include one or more communication paths that permitcommunication among the components of device 300. Processor 320 mayinclude a processor, microprocessor, or processing logic that mayinterpret and execute instructions. Memory 330 may include any type ofdynamic storage device that may store information and instructions forexecution by processor 320, and/or any type of non-volatile storagedevice that may store information for use by processor 320.

Input component 340 may include a mechanism that permits an operator toinput information to device 300, such as a keyboard, a keypad, a button,a switch, etc. Output component 350 may include a mechanism that outputsinformation to the operator, such as a display, a speaker, one or morelight emitting diodes (“LEDs”), etc.

Communication interface 360 may include any transceiver-like mechanismthat enables device 300 to communicate with other devices and/orsystems. For example, communication interface 360 may include anEthernet interface, an optical interface, a coaxial interface, or thelike. Communication interface 360 may include a wireless communicationdevice, such as an infrared (IR) receiver, a Bluetooth radio, or thelike. The wireless communication device may be coupled to an externaldevice, such as a remote control, a wireless keyboard, a mobiletelephone, etc. In some embodiments, device 300 may include more thanone communication interface 360. For instance, device 300 may include anoptical interface and an Ethernet interface.

As will be described in detail below, device 300 may perform certainoperations relating to handing over connections between user devices 102and RANs 105. Device 300 may perform these operations in response toprocessor 320 executing software instructions stored in acomputer-readable medium, such as memory 330. A computer-readable mediummay be defined as a non-transitory memory device. A memory device mayinclude space within a single physical memory device or spread acrossmultiple physical memory devices. The software instructions may be readinto memory 330 from another computer-readable medium or from anotherdevice. The software instructions stored in memory 330 may causeprocessor 320 to perform processes described herein. Alternatively,hardwired circuitry may be used in place of or in combination withsoftware instructions to implement processes described herein. Thus,implementations described herein are not limited to any specificcombination of hardware circuitry and software.

FIG. 4 is a diagram of example functional components of RHS 115. Asshown in FIG. 4, RHS may include user device information module 405,subscription information module 410, network congestion informationmodule 415, network administration information module 420, applicationinformation module 425, and analysis module 430. Any, or all, of modules405-430 may be implemented by or more memory devices (such as memory330) and/or one or more processors (such as processor 320). Furthermore,multiple modules may be associated with the same memory device and/orprocessor (e.g., one memory device, or one set of memory devices, maystore information associated with at least two different ones of modules405-425).

Module 405 may receive and/or store user device information. Thisinformation may identify capabilities of one or more user devices (e.g.,user device 102). Such information may indicate, for example, via whichtechnology, or technologies, user device 102 is capable ofcommunicating. For example, the information may indicate that userdevice 102 is capable of communicating via LTE and wi-fi technologies.The information stored by module 405 may also identify a geographiclocation of user device 102. Module 405 may receive this informationfrom user device 102, and/or from one or more other devices thatgenerate, receive, and/or store information regarding user device 102(e.g., a Policy Charging and Rules Function (“PCRF”), a Home SubscriberServer (“HSS”), BS 222, etc.).

Module 410 may receive and/or store subscription information associatedwith user device 102. The subscription information may indicate one ormore technologies that user device 102 is subscribed to, and/or one ormore technologies that user device 102 is not permitted to use. Forexample, the information may indicate that user device 102 is subscribedto a service, whereby user device 102 always uses LTE technology whenuser device 102 is in range of a RAN 105 that employs LTE technology.Additionally, or alternatively, the information may indicate that userdevice 102 may never use wi-fi technology Additionally, oralternatively, the information may indicate that user device 102 neveruses wi-fi technology if user device 102 is in range of any RANs 105,that are associated with any other technology.

The subscription information, associated with user device 102, may,additionally, or alternatively, indicate a priority of technologiesassociated with RANs 105, in a ranked order. For example, the storedsubscription information may indicate that user device 102 should useLTE technology when user device 102 is in range of a RAN 105 thatemploys LTE, and one or more other RANs 105 that employ another type oftechnology (e.g., wi-fi). Stored subscription information for anotheruser device may indicate a different priority for the other user device.For instance, the stored subscription information may indicate that theother user device will prefer using wi-fi technology when the other userdevice is in range of a RAN 105 that employs wi-fi and one or more otherRANs 105 that employ another type of technology (e.g., LTE).

Module 410 may receive subscription information from user device 102,and/or from one or more other devices that generate, receive, and/orstore subscription information associated with user device 102 (e.g., aPCRF, an HSS, an Authentication-Authorization-Accounting (“AAA”) server,etc.).

Module 415 may receive and/or store information regarding networkcongestion. For example, the information regarding network congestionmay identify an amount of radio traffic associated with a particular RAN105, an amount of traffic being handled by one or more servers or othernetwork devices of RAN 105, or the like. Module 410 may receive thisinformation from one or more devices, of RAN 105, that collect and/oridentify traffic/congestion within RAN 105 (e.g., BS 222, RNC 224,etc.).

Module 420 may receive and/or store network administration informationthat identifies network device capabilities, network parameters, or thelike. Such information may include information identifying with whichtechnology, or technologies, each RAN 105 is associated, informationidentifying a particular RAN 105 to which user device 102 is connected,information identifying a location of one or more RANs 105, informationidentifying a coverage area of one or more RANs 105, etc.

Additionally, or alternatively, module 420 may receive and/or store asystem-wide priority list that identifies technologies associated withRANs 105, in a ranked order. This system-wide priority list may beindependent of a priority list that is identified by subscriberinformation for individual user devices 102. For example, thesystem-wide priority list may rank a first technology (e.g., wi-fi)higher than another a second technology (e.g., LTE), while a differentpriority list, associated with user device 102, may indicate a differentpriority.

Module 420 may receive the network administration information from oneor more devices of RAN 105 (e.g., BS 222, RNC 224, etc.). Additionally,or alternatively, the information may be received by module 420 from auser (e.g., an administrator that owns and/or operates one or more ofRANs 105, network 110, and/or RHS 115).

Module 425 may receive and/or store information regarding one or moreapplications that are invoked by a user device (e.g., user device 102),while user device is connected to a particular RAN 105. For example,module 425 may receive an indication that user device 102 has invoked avoice call application, a VoIP application, a video streamingapplication, video telephoning, interactive gaming, etc. Module 425 mayreceive the indication from user device 102, and/or from one or moredevices of RAN 105 (e.g., BS 222, RNC 224, etc.).

Module 430 may receive information from one or more of modules 405-425,analyze the received information, and determine, based on the analysis,whether a connection between user device 102 and a particular RAN 105should be handed over to another RAN 105. Examples of the analysisperformed by module 430 are described further below with respect toFIGS. 5-8. Upon determining that the connection should be handed over,module 430 may send a message to user device 102, RAN 105 (to which userdevice 102 is currently connected), and/or another RAN 105 (to which theconnection should be handed over).

Although FIG. 4 shows example modules of RHS 115, in otherimplementations, RHS 115 may include fewer, different, or additionalmodules than depicted in FIG. 4. In still other implementations, one ormore modules of RHS 115 may perform the tasks performed by one or moreother modules of RHS 115.

FIG. 5 shows an example process 500 for handing over a connection,between user device 102 and one RAN 105, to another RAN 105. In oneexample implementation, process 500 may be performed by RHS 115.Specifically, for example, process 500 may be performed by one or moremodules 405-430 described above with respect to FIG. 4. In anotherexample implementation, some or all of process 500 may be performed by adevice or collection of devices separate from, or in combination with,RHS 115.

Process 500 may include receiving user device information (block 505).For example, RHS 115 (e.g., module 405) may receive user deviceinformation regarding user device 102. As described above, user deviceinformation may indicate, for example, via which technology, ortechnologies, user device 102 is capable of communicating, a geographiclocation of user device 102, etc.

Process 500 may also include receiving subscription information (block510). For example, RHS 115 (e.g., module 410) may receive subscriptioninformation associated with user device 102. As described above,subscription information may indicate one or more technologies that userdevice 102 is subscribed to, and/or one or more technologies that userdevice 102 is not permitted to use. The subscription information may,additionally, or alternatively, indicate a priority of technologiesassociated with RANs 105, in a ranked order.

Process 500 may further include receiving network congestion information(block 515). For example, RHS 115 (e.g., module 415) may receive networkcongestion information regarding one or more RANs 105. As describedabove, network congestion information may identify an amount of radiotraffic associated with a particular RAN 105, an amount of traffic beinghandled by one or more servers of RAN 105, or the like.

Process 500 may additionally include receiving network administrationinformation (block 520). For example, RHS 115 (e.g., module 420) mayreceive network administration information regarding one or more RANs105. As described above, network administration information may include,information identifying with which technology, or technologies, each RAN105 is associated, information identifying a particular RAN 105 to whichuser device 102 is connected, information identifying a location of oneor more RANs 105, information identifying a coverage area of one or moreRANs 105, a system-wide priority list that identifies technologiesassociated with RANs 105, in a ranked order, etc.

Process 500 may also include receiving application information (block525). For example, RHS 115 (e.g., module 425) may receive informationidentifying one or more applications that have been invoked by userdevice 102. For example, the application information may identify thatuser device 102 has invoked a voice call application, a VoIPapplication, a video streaming application, etc.

Process 500 may further include receiving connection information (block530). For example, RHS 115 (e.g., module 425) may receive informationidentifying whether one or more connections, associated with user device102, are active and/or idle. For example, an active connection may beassociated with an ongoing video conference, while an idle connectionmay be associated with a data connection over which data is notpresently being transmitted to and/or from user device 102.

Process 500 may further include determining whether to hand over aconnection, based on the received information (block 535). For example,RHS 115 (e.g., module 430) may determine, based on some, or all, of theinformation received at blocks 505-525, whether to hand over aconnection, between user device 102 and a particular RAN 105, to anotherRAN 105. For instance, RHS 115 may calculate one or more values based onsome, or all, of the information received at blocks 505-525. RHS 115 maycombine the calculated values in order to determine whether to hand overthe connection.

For example, assume that user device information, associated with userdevice 102, indicates that user device 102 is capable of communicatingvia LTE and wi-fi technologies. Further assume that the received networkadministration information indicates that user device 102 is connectedto RAN 105-1 via LTE technology. Further still, assume that RHS 115determines, based on user device information and network administrationinformation, that user device 102 is in range of RAN 105-2, which isassociated with wi-fi technology. Additionally, assume that RHS 115determines, based on network congestion information, that RAN 105-1 iscongested, and/or that RAN 105-1 is more congested than RAN 105-2. RHS115 may determine, based on the received user device information,network administration information, and network congestion information,that the connection, between user device 102 and RAN 105-1, should behanded over to RAN 105-2.

Further to the above example, assume that RHS 115 receives subscriptioninformation, identifying that user device 102 is associated with asubscription that indicates that LTE technology should be used wheneverLTE technology is available, regardless of other factors (e.g., whetheranother technology is available, network congestion, invokedapplications, etc.). In such a situation, RHS 115 may determine that theconnection, between user device 102 and RAN 105-1, should not be handedover to RAN 105-2, even though RHS 115 has identified that RAN 105-1 iscongested.

As another example, assume that RHS 115 receives information identifyingthat a particular connection between user device 102 and RAN 105-1 isidle. RHS 115 may determine that the connection should be handed over toa RAN that is associated with lower performance (e.g., lower bandwidth,higher latency, etc.) than RAN 105-1. On the other hand, assume that RHS115 receives information identifying that a particular connectionbetween user device 102 and RAN 105-1 is active. RHS 115 may determinethat the connection should be handed over to a less-congested RAN 105,and/or a RAN 105 that is associated with higher performance (e.g.,higher bandwidth, lower latency, etc.) than RAN 105-1.

While the preceding example was explained in the context of specificuser device information, subscription information, network congestioninformation, and network administration information, any combination ofany type of information (e.g., any combination of user deviceinformation, subscription information, network congestion information,network administration information, and/or application information) maybe used to determine whether to hand over a connection, between userdevice 102 and a particular RAN 105, to another RAN 105.

In some implementations, certain types of information may be weighteddifferently from other types of information. For example, RHS 115 mayidentify, based on network congestion information, that RAN 105 (whichmay be associated with LTE technology) is congested (and/or may identifya level of congestion), and may generate a value (e.g., 1, 75, 100,etc.) based on this information. RHS 115 may assign a weight to thevalue (e.g., 0.3, 0.5, 1.0, etc.). Further, in this example, RHS 115 mayidentify that user device 102 is associated with a subscription, thatguarantees the use of a particular technology (e.g., LTE) when theparticular technology is available. RHS 115 may identify that userdevice 102 is associated with a subscription that a technology that isprovided by RAN 105, and may generate a value (e.g., 1, 100, etc.) basedon this identification. RHS 115 may also assign a weight to this value(e.g., 0.2, 0.5, etc.). Based on the generated values and their weights,RHS 115 may take into account several factors, and the respectiveimportance of each factor, when determining whether to hand over aconnection between user device 102 and RAN 105. The weights may beprovided by a user (e.g., an administrator of RHS 115, RAN 105, etc.),or may be automatically generated based on the types of applicationsthat are invoked by user device 102, subscriptions associated with userdevice 102, and/or congestion level of RAN 105.

Additionally, or alternatively, certain types of information mayoverride other types of information. For instance, RHS 115 may storeinformation identifying that VoIP applications should be handled by RANs105 that are associated with LTE technology, and not by RANs 105 thatare not associated with LTE technology (e.g., RANs that are associatedwith wi-fi technology and not with LTE technology). RHS 115 mayidentify, for example, that user device 102 has invoked a VoIPapplication. In such an example, RHS 115 may hand over a connectioninvolving user device 102 to a particular RAN 105 that is associatedwith LTE technology (or may forego handing over the connection, if userdevice is already connected to a particular RAN 105 that is associatedwith LTE technology), regardless of other factors (e.g., regardless ofcongestion information, information that ranks technologies, etc.).

Further and/or more detailed examples of how RHS 115 may determinewhether to hand over a connection, between user device 102 and aparticular RAN 105, to another RAN 105 (at block 530), are providedbelow with respect to FIGS. 6-8.

If RHS 115 determines that the connection should be handed over (block535—YES), RHS 115 may send an instruction to hand over the connection toa different RAN 105 (block 540). For example, RHS 115 may send aninstruction and/or notification to user device 102, RAN 105 to whichuser device 102 is connected, and/or RAN 105 to which the connection isbeing handed over.

When sending multiple instructions to hand over multiple differentconnections (at block 540) within a particular time period, RHS 115 maystagger the sending of the multiple instructions, in order to avoid acondition where numerous connections may be handed over to the same RAN105 within a brief period of time. For example, RHS 115 may identifywhether a particular threshold quantity of instructions to hand overconnections have been sent within a particular period of time. If thethreshold quantity of handover instructions has been sent within theparticular period of time, RHS 115 may delay sending another handoverinstruction until the quantity of sent handover instructions falls belowthe threshold quantity.

For example, assume that the threshold quantity is 100 instructions perminute. Further assume that RHS 115 has sent one instruction at time T,another instruction at time T+2 seconds, and another 98 instructionsbetween times T and T+59 seconds. Because the threshold quantity in thisexample is 100 instructions per minute, RHS 115 may not send a 101stinstruction until time T+60 seconds, and may not send a 102ndinstruction until time T+62 seconds.

Furthermore, the instruction to hand over the connection to a differentRAN 105 (sent at block 540) may correspond to an instruction to connectto the different RAN 105, while retaining the connection with theprevious RAN 105. For example, the instruction may include aninstruction to communicate voice traffic via a different RAN 105, whileretaining the connection with the previous RAN 105 for data traffic.

If, on the other hand, RHS 115 determines that the connection should notbe handed over (block 535—NO), RHS 115 may forego sending an instructionto hand over the connection to a different RAN 105 (block 545). Whenforegoing to send the instruction to hand over the connection, RHS 115may forego sending any communication regarding the determination, madeat block 535, to user device 102 or any RAN 105. Alternatively, RHS 115may notify user device 102 and/or one or more RANs 105 that RHS 115 hasdetermined that the connection between user device 102 and RAN 105should not be handed over.

Although process 500 was described as including blocks 505-545,different, additional, or fewer blocks may be used. For example, in someimplementations, process 500 may not include one or more of blocks505-530. In on example, assume that process 500 does not include block525. In such an example, block 535 may not include determining whetherto hand over a connection based on application information.Additionally, or alternatively, not all of the information received atone or more of blocks 505-530 may be used when making the determinationat block 535. Furthermore, additional information, which may not havebeen specifically described with respect to blocks 505-530, may be usedwhen making the determination at block 535.

FIGS. 6-8 illustrate example processes 600, 700, and 800, respectively,of how RHS 115 may determine (at block 530) whether to hand over aconnection between user device 102 and RAN 105. As discussed above withrespect to FIG. 5, any combination of processes 600, 700, and 800 may beused. Furthermore, additional, different, or fewer processes may be usedwhen determining (at block 530) whether to hand over a connectionbetween user device 102 and RAN 105.

FIG. 6 illustrates an example process 600 for identifying whether aconnection should be handed over, based on network congestioninformation. In one example implementation, process 600 may be performedby RHS 115. Specifically, for example, process 600 may be performed bymodule 430, described above with respect to FIG. 4. In another exampleimplementation, some or all of process 600 may be performed by a deviceor collection of devices separate from, or in combination with, module430 and/or RHS 115.

Process 600 may include analyzing network congestion information (block605). For example, RHS 115 may identify an amount of traffic, orcongestion, associated with one or more RANs 105 (including, forinstance, a particular RAN 105 to which user device 102 is connected).The identified amount of traffic, or congestion, may correspond to radiotraffic associated with the one or more RANs 105 (e.g., an amount ofradio bandwidth being consumed and/or utilized by one or more radiotransceivers associated with the one or more RANs 105). Additionally, oralternatively, the identified amount of traffic, or congestion, mayinclude a correspond to a quantity of connections associated with theone or more RANs 105 (e.g., a number of connections between each RAN 105and one or more user devices 102).

Process 600 may further include determining whether the congestioninformation is above a threshold (block 610). For example, RHS 115 mayidentify whether an amount of traffic, or congestion, associated with aparticular RAN 105, to which user device 102 is connected, is above athreshold. The threshold may be provided by a user (e.g., anadministrator associated with RHS 115, and/or associated with one ormore RANs 105). Additionally, or alternatively, the threshold may beautomatically generated.

If the congestion information is above the threshold (block 610—YES),process 600 may include determining whether another RAN 105 is available(block 615). For example, RHS 115 may identify whether user device 102is in range of another RAN 105, in addition to the RAN 105 to which userdevice 102 is presently connected. This determination may be based onuser device information (e.g., a geographic location of user device 102)and/or network administration information (e.g., a geographic locationof the other RAN, coverage area(s) of the other RAN, etc.).Additionally, or alternatively, this determination may be based oncongestion and/or traffic associated with the other RAN 105. Forexample, if the other RAN 105 is congested (e.g., the congestion and/ortraffic of the other RAN 105 is above a threshold), RHS 115 maydetermine that the other RAN 105 is not available. If, on the otherhand, the other RAN 105 is not congested, RHS 115 may determine that theother RAN 105 is available.

If the other RAN 105 is available (block 615—YES), then RHS 115 mayidentify that the connection, between user device 102 and RAN 105 withwhich user device 102 is presently connected, should be handed over tothe other RAN 105. If, on the other hand, the congestion is not abovethe threshold (block 610—NO), and/or another RAN 105 is not available(block 615—NO), process 600 may include identifying that the connectionshould not be handed over (block 625).

While process 600 was described in terms of blocks 605-625, different,additional, or fewer blocks may be used. For example, additionally, orin lieu of block 610, RHS 115 may compare the congestion of a particularRAN 105, to which user device 102 is presently connected, to thecongestion of the other RAN 105, and determine, based on the comparison,whether the connection should be handed over to the other RAN 105. Forexample, if the congestion of the particular RAN 105, to which userdevice 102 is presently connected, is greater than the congestion of theother RAN 105, RHS 115 may determine that the connection should behanded over to the other RAN 105. Alternatively, RHS 115 may determinethat the connection should be handed over to the other RAN 105 when thecongestion of the particular RAN 105 is greater than the congestion ofthe other RAN 105, by at least a particular amount. For example, if thecongestion of the particular RAN 105 is greater than the congestion ofthe other RAN 105, but not by at least the particular amount, RHS 115may determine that the connection should not be handed over to the otherRAN 105.

Furthermore, while blocks 620 and 625 are illustrated as “Identify thatconnection should be handed over to other RAN” and “Identify thatconnection should not be handed over,” respectively, the networkcongestion information, analyzed in FIG. 6, may, in someimplementations, merely serve as a factor that allows RHS 115 todetermine whether to hand over a connection. For example, when RHS 115determines that the congestion of RAN 105 is above a threshold (block610—YES), and another RAN 105 is available (block 615—YES), RHS 115 maygenerate a value that indicates that RAN 105 is congested and that theother RAN 105 is available. However, as described above with respect toblock 535 of FIG. 5, this value may be combined with one or more othervalues in order to ultimately determine whether to hand over theconnection to the other RAN 105. Thus, it is possible that a scenariomay exist where block 620 is performed, but RHS 115 ultimately foregoessending an instruction to hand over the connection (block 540 of FIG.5).

The above-described process may ease congestion of one or more RANs 105,that are associated with a particular technology, by allowing one ormore other RANs 105, that are associated with another technology, viawhich user device 102 is capable of communicating, to handle connectionswith user device 102. Thus, traffic may be spread across multiple RANs105, in order to provide any number of benefits, such as lower bandwidthconsumption, to congested RANs 105.

FIG. 7 illustrates an example process 700 for identifying whether aconnection should be handed over, based on an application that isinvoked by a user device. In one example implementation, process 700 maybe performed by RHS 115. Specifically, for example, process 700 may beperformed by module 430, described above with respect to FIG. 4. Inanother example implementation, some or all of process 700 may beperformed by a device or collection of devices separate from, or incombination with, module 430 and/or RHS 115.

Process 700 may include receiving information regarding an applicationthat is invoked by a user device (block 705). For example, RHS 115 mayreceive an identification of an application, and/or a type ofapplication, that has been invoked by user device 102. For example, RHS115 may receive information that indicates that user device 102 hasinvoked a VoIP application, a voice call application, a video streamingapplication, etc. RHS 115 may receive the information regarding theinvoked application from user device 102, and/or from one or moredevices of RAN 105, to which user device 102 is connected.

Process 700 may also include identifying a preferred technologyassociated with the invoked application (block 710). For example, RHS115 may store an identification of one or more preferred technologiesthat are associated with each of one or more applications and/or typesof applications. The identification of the one or more preferredtechnologies may include a ranked list of two or more technologies. Forinstance, the identification may indicate that an LTE technology is morepreferable than (e.g., is ranked higher than) a wi-fi technology whenthe invoked application is a VoIP application, while the identificationmay indicate that a wi-fi technology is more preferable than an LTEtechnology when the invoked application is a video streamingapplication. RHS 115 may compare the identified application, that hasbeen invoked by user device 102, to the identification of one or morepreferred technologies that are associated with the identifiedapplication, in order to identify the one or more preferred technologiesthat are associated with the identified application.

Process 700 may further include determining whether a current RAN 105,to which user device 102 is presently connected, is associated with oneor more of the preferred technologies (block 715). For example, RHS 115may determine whether the current RAN 105 is associated with ahighest-ranked technology, in the ranked list of technologies.Additionally, or alternatively, RHS 115 may determine whether atechnology associated with RAN 105 is a highly ranked technology,without necessarily being a highest-ranked technology in the ranked listof technologies. In order to do so, RHS 115 may determine whether atechnology associated with RAN 105 is within the top X of technologiesin the ranked list of technologies (where X is an integer is greaterthan or equal to 2). Additionally, or alternatively, RHS 115 maydetermine whether a technology associated with RAN 105 is within the topY % of technologies in the ranked list of technologies (where Y is anumber between 0 and 100). The quantities X and/or Y may be configuredby a user (e.g., an administrator of RHS 115, and/or an administrator ofone or more RANs 105). Additionally, or alternatively, the quantities Xand/or Y may be generated and/or adjusted automatically.

RHS 115 may identify the current RAN 105 based on network administrationinformation (e.g., information received at block 520 of FIG. 5),including a technology associated with RAN 105. RHS 115 may compare thepreferred technology (identified at block 710) with the technologyassociated with RAN 105, to which user device 102 is presentlyconnected, in order to determine whether the current RAN 105 isassociated with the preferred technology.

If the current RAN 105 is not associated with the preferred technology(or with one or more of the preferred technologies, as described above)(block 715—NO), then process 700 may include determining whether anotherRAN 105 is available (block 720). For example, assume that theapplication, invoked by user device 102, is a VoIP application, whilethe current RAN 105 is not associated with an LTE technology (e.g.,current RAN 105 may be associated with wi-fi or another technology). Insuch an example, RHS 115 may determine that the current RAN 105 is notassociated with the preferred technology for VoIP applications (e.g., isnot associated with an LTE technology).

When determining whether another RAN 105 is available (at block 720),RHS 115 may determine whether another RAN 105, which is in range of userdevice 102, is associated with the preferred technology (or one or moreof the identified preferred technologies). Additionally, oralternatively, RHS 115 may identify whether another RAN 105 isassociated with a more preferred technology (e.g., a technology that isranked higher on the ranked list, a technology that is ranked within thetop X or the top Y % of technologies, etc.) than a technology associatedwith the current RAN 105.

If another RAN 105, which is associated with a preferred (or a morepreferred) technology, for the invoked application, is available (e.g.,is in range of user device 102) (block 720), then RHS 115 may identifythat the connection, between user device 102 and current RAN 105, withwhich user device 102 is presently connected, should be handed over tothe other RAN 105. If, on the other hand, the current RAN 105 isassociated with a preferred technology (e.g., a highest-rankedtechnology) (block 715—YES), and/or if another RAN 105 (e.g., a RAN 105that is associated with a more preferred technology than a technologyassociated with the current RAN 105) is not available (block 720—NO),then process 700 may include identifying that the connection should notbe handed over (block 730).

While process 700 was described in terms of blocks 705-730, different,additional, or fewer blocks may be used. Furthermore, while blocks 725and 730 are illustrated as “Identify that connection should be handedover to other RAN” and “Identify that connection should not be handedover,” respectively, the information regarding the application invokedby user device 102, analyzed in FIG. 7, may, in some implementations,merely serve as a factor that allows RHS 115 to determine whether tohand over a connection. For example, when RHS 115 determines that thecurrent RAN 105 is not associated with a preferred technology for aninvoked application (block 715—NO), and another RAN 105 is available(block 720—YES), RHS 115 may generate a value that indicates that thecurrent RAN 105 is not associated with a preferred technology and thatthe other RAN 105 is available. However, as described above with respectto block 535 of FIG. 5, this value may be combined with one or moreother values in order to ultimately determine whether to hand over theconnection to the other RAN 105. Thus, it is possible that a scenariomay exist where block 725 is performed, but RHS 115 ultimately foregoessending an instruction to hand over the connection (block 540 of FIG.5).

The above-described process may allow user devices 102 that invokecertain applications to connect to RANs 105 that are associated withtechnologies that are well-suited to serve those applications. Thesetechnologies may provide any of a number of benefits, such as lowerlatency, higher bandwidth, higher quality of service guarantees, lowerpower consumption at user device 102, etc., than other technologies thatare identified as not as well-suited for handling the applications.

FIG. 8 illustrates an example process 800 for identifying whether aconnection should be handed over, based on whether a RAN associated witha more preferred technology is available. In one example implementation,process 800 may be performed by RHS 115. Specifically, for example,process 800 may be performed by module 430, described above with respectto FIG. 4. In another example implementation, some or all of process 800may be performed by a device or collection of devices separate from, orin combination with, module 430 and/or RHS 115.

Process 800 may include identifying a technology via which a user deviceis connected to a RAN. For example, RHS 115 may identify a technologyvia which user device 102 is presently connected to a particular RAN105. RHS 115 may identify the technology based on network administrationinformation (e.g., information received at block 520 of FIG. 5), userdevice information (e.g., information received at block 505 of FIG. 5),and/or by any other methodology.

Process 800 may further include determining whether a RAN, that isassociated with a preferred (or a more preferred) technology, isavailable (block 810). For example, RHS 115 may store networkadministration information, that includes a ranked list of technologies.The ranking of the list may be based on information received from a user(e.g., an administrator of RHS 115 and/or an administrator of one ormore RANs 105). Additionally, or alternatively, the list may beautomatically generated and/or modified based on one or more factors,such as a measured and/or expected quality of service and/or a measuredand/or expected bandwidth associated with each of the technologies.

RHS 115 may further base the determination, of whether a preferred RAN105 is available, on whether user device 102 is in range of one or moreRANs 105 identified in the list. RHS 115 may determine whether userdevice 102 is in range of one or more RANs 105 by comparing a geographiclocation of user device 102 with geographic location(s) and/or coveragearea(s) of the one or more RANs 105.

If a preferred (or a more preferred) technology is available (block815—YES), then RHS 115 may identify that the connection, between userdevice 102 and current RAN 105, with which user device 102 is presentlyconnected, should be handed over to the other RAN 105. If, on the otherhand, the current RAN 105 is associated with a preferred technology(e.g., a highest-ranked technology) (block 810—YES), then process 800may include identifying that the connection should not be handed over(block 820).

While process 800 was described in terms of blocks 805-820, different,additional, or fewer blocks may be used. Furthermore, while blocks 815and 820 are illustrated as “Identify that connection should be handedover to other RAN” and “Identify that connection should not be handedover,” respectively, the information regarding the technology via whichuser device 102 is connected to the current RAN 105, analyzed in FIG. 8,may, in some implementations, merely serve as a factor that allows RHS115 to determine whether to hand over a connection. For example, whenRHS 115 determines that a RAN 105 that is associated with a morepreferred technology (block 810—YES), RHS 115 may generate a value thatindicates that the other RAN 105 is available. However, as describedabove with respect to block 535 of FIG. 5, this value may be combinedwith one or more other values in order to ultimately determine whetherto hand over the connection to the other RAN 105. Thus, it is possiblethat a scenario may exist where block 815 is performed, but RHS 115ultimately foregoes sending an instruction to hand over the connection(block 540 of FIG. 5).

The above-described process may allow technologies to be prioritized ona system-wide basis. For example, an operator of RHS 115 and/or of oneor more RANs 105 may desire to transition out of an older technology,and into a newer technology. In such a scenario, the operator mayprioritize the newer technology over the older technology, thus causingmore user devices 102 to connect to RANs 105 that correspond to thenewer technology.

The device(s) and processes described above allow user devices, whichare capable of communicating via multiple technologies, to communicateover the most desirable technologies, as determined by any number offactors. These factors may be weighted (e.g., based on the desiresand/or goals of a network operator), and thus allow great flexibilitywith respect to how these factors determine when a user device shoulduse a specific technology.

The foregoing description of implementations provides illustration anddescription, but is not intended to be exhaustive or to limit thepossible implementations to the precise form disclosed. Modificationsand variations are possible in light of the above teachings or may beacquired from practice of the implementations. For example, while seriesof blocks have been described with regard to FIGS. 5-8, the order of theblocks may be modified in other implementations. Further, non-dependentblocks may be performed in parallel. It will be apparent thatembodiments, as described above, may be implemented in many differentforms of software, firmware, and hardware in the implementationsillustrated in the figures.

Furthermore, while several of the above examples described RANs as eachcorresponding to one technology, it may be understood that theabove-described implementations could be carried out using a RAN thatincorporates multiple technologies. For example, a RAN may be associatedwith an LTE technology and a wi-fi technology. Systems and methodsdescribed above may cause a user device, that is connected to the RANvia the LTE technology, to be switched to a connection to the RAN viathe wi-fi technology.

The actual software code or specialized control hardware used toimplement an embodiment is not limiting of the embodiment. Thus, theoperation and behavior of the embodiment has been described withoutreference to the specific software code, it being understood thatsoftware and control hardware may be designed based on the descriptionherein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of the possible implementations. Infact, many of these features may be combined in ways not specificallyrecited in the claims and/or disclosed in the specification. Althougheach dependent claim listed below may directly depend on only one otherclaim, the disclosure of the possible implementations includes eachdependent claim in combination with every other claim in the claim set.

No element, act, or instruction used in the present application shouldbe construed as critical or essential unless explicitly described assuch. Also, as used herein, the article “a” is intended to include oneor more items. Where only one item is intended, the term “one” orsimilar language is used. Further, the phrase “based on” is intended tomean “based, at least in part, on” unless explicitly stated otherwise.

What is claimed is:
 1. A method comprising: identifying, by one or moreserver devices, that a user device is connected to a first radio accessnetwork (“RAN”) that is associated with a first technology; generating,by one or more server devices, a first score, based on an amount ofcongestion associated with the first RAN; generating, by one or moreserver devices, a second score, based on a position of the first RAN ina priority list that prioritizes a plurality of RANs; generating, by oneor more server devices, a third score, based on a type of an applicationinvoked by the user device; generating, by one or more server devices, afourth score by combining the first score, the second score, and thethird score; comparing, by one or more server devices, the fourth scorewith a fifth score that is associated with a second RAN that isassociated with a second technology, where the second RAN is differentfrom the first RAN, and where the second technology is different fromthe first technology; determining, by one or more server devices andbased on the comparing, that a connection between the user device andthe first RAN should be handed over to the second RAN; and sending, byone or more server devices and based on the determining, an instructionthat causes the connection between the user device and the first RAN tobe handed over to the second RAN.
 2. The method of claim 1, where thefifth score, for the second RAN, is based on at least one of: an amountof congestion associated with the second RAN, a position of the secondRAN in the priority list, or the application invoked by the user device.3. The method of claim 1, where at least one of the first score, thesecond score, or the third score is associated with a first weight, andwhere at least another one of the first score, the second score, or thethird score is associated with a second weight, where the second weightis different from the first weight.
 4. The method of claim 1, where thetype of the application is associated with at least one of: a cellularvoice call, an audio stream, a video stream, or a voice over Internetprotocol call.
 5. The method of claim 1, where generating the fourthscore further includes: combining the first, second, and third scoreswith a sixth score that is based on whether the user device isassociated with a subscription that identifies the first technology as apreferred technology.
 6. The method of claim 1, further comprising:determining that the user device is capable of communicating via thesecond technology, where determining, that the connection between theuser device and the first RAN should be handed over to the second RAN,is further based on determining that the user device is capable ofcommunicating via the second technology.
 7. The method of claim 1, wherethe third score is based on: determining whether the first technologyhas been identified as a preferred technology that is associated withthe type of the application.
 8. A system, comprising: a non-transitorymemory device storing a set of processor-executable instructions; and aprocessor, where executing the set of processor-executable instructionscauses the processor to: identify that a user device is connected to afirst radio access network (“RAN”) that is associated with a firsttechnology; generate a first score, based on an amount of congestionassociated with the first RAN; generate a second score, based on aposition of the first RAN in a priority list that prioritizes aplurality of RANs; generate a third score, based on a type of anapplication invoked by the user device; generate a fourth score bycombining the first score, the second score, and the third score;compare the fourth score with a fifth score that is associated with asecond RAN that is associated with a second technology, where the secondRAN is different from the first RAN, and where the second technology isdifferent from the first technology; determine, based on the comparing,that a connection between the user device and the first RAN should behanded over to the second RAN; and send, based on the determining, aninstruction that causes the connection between the user device and thefirst RAN to be handed over to the second RAN.
 9. The system of claim 8,where the fifth score, for the second RAN, is based on at least one of:an amount of congestion associated with the second RAN, a position ofthe second RAN in the priority list, or the application invoked by theuser device.
 10. The system of claim 8, where at least one of the firstscore, the second score, or the third score is associated with a firstweight, and where at least another one of the first score, the secondscore, or the third score is associated with a second weight, where thesecond weight is different from the first weight.
 11. The system ofclaim 8, where the type of the application is associated with at leastone of: a cellular voice call, an audio stream, a video stream, or avoice over Internet protocol call.
 12. The system of claim 8, whereexecuting the computer-executable instructions, to generate the fourthscore, further causes the processor to: combine the first, second, andthird scores with a sixth score that is based on whether the user deviceis associated with a subscription that identifies the first technologyas a preferred technology.
 13. The system of claim 8, where executingthe computer-executable instructions further causes the processor to:determine that the user device is capable of communicating via thesecond technology, where determining, that the connection between theuser device and the first RAN should be handed over to the second RAN,is further based on determining that the user device is capable ofcommunicating via the second technology.
 14. The system of claim 8,where the third score is based on: a determination of whether the firsttechnology has been identified as a preferred technology that isassociated with the type of the application.
 15. A non-transitorycomputer-readable medium, comprising: a plurality of instructions,which, when executed by a processor, cause the processor to: identifythat a user device is connected to a first radio access network (“RAN”)that is associated with a first technology; generate a first score,based on an amount of congestion associated with the first RAN; generatea second score, based on a position of the first RAN in a priority listthat prioritizes a plurality of RANs; generate a third score, based on atype of an application invoked by the user device; generate a fourthscore by combining the first score, the second score, and the thirdscore; compare the fourth score with a fifth score that is associatedwith a second RAN that is associated with a second technology, where thesecond RAN is different from the first RAN, and where the secondtechnology is different from the first technology; determine, based onthe comparing, that a connection between the user device and the firstRAN should be handed over to the second RAN; and send, based on thedetermining, an instruction that causes the connection between the userdevice and the first RAN to be handed over to the second RAN.
 16. Thenon-transitory computer-readable medium of claim 15, where the fifthscore, for the second RAN, is based on at least one of: an amount ofcongestion associated with the second RAN, a position of the second RANin the priority list, or the application invoked by the user device. 17.The non-transitory computer-readable medium of claim 15, where at leastone of the first score, the second score, or the third score isassociated with a first weight, and where at least another one of thefirst score, the second score, or the third score is associated with asecond weight, where the second weight is different from the firstweight.
 18. The non-transitory computer-readable medium of claim 15,where the type of the application is associated with at least one of: acellular voice call, an audio stream, a video stream, or a voice overInternet protocol call.
 19. The non-transitory computer-readable mediumof claim 15, where the computer-executable instructions, to generate thefourth score, further cause the processor to: combine the first, second,and third scores with a sixth score that is based on whether the userdevice is associated with a subscription that identifies the firsttechnology as a preferred technology.
 20. The non-transitorycomputer-readable medium of claim 15, where the computer-executableinstructions further cause the processor to: determine that the userdevice is capable of communicating via the second technology, wheredetermining, that the connection between the user device and the firstRAN should be handed over to the second RAN, is further based ondetermining that the user device is capable of communicating via thesecond technology.